<#pragma once

#include <sstream>
#include <type_traits>
#include "memory_allocator.hpp"
#include "ned_pool.hpp"

namespace cpac
{
    typedef std::basic_stringstream
        <
            char,
            std::char_traits< char >,
            allocator_stl< char, aligned_pooling_policy< ned_pool, std::alignment_of< char >::value > >
        > stringstream;

    typedef std::basic_stringstream
        <
            wchar_t,
            std::char_traits< wchar_t >,
            allocator_stl< wchar_t, aligned_pooling_policy< ned_pool, std::alignment_of< wchar_t >::value > >
        > wstringstream;

    typedef std::basic_ostringstream
        <
            char,
            std::char_traits< char >,
            allocator_stl< char, aligned_pooling_policy< ned_pool, std::alignment_of< char >::value > >
        > ostringstream;
}
